package com.sky.controller.redis;


import com.sky.dto.CourierTradeQueryDto;
import com.sky.dto.PickUpDTO;
import com.sky.result.Result;
import com.sky.service.redis.CourierTradeOrderService;
import com.sky.vo.OrderDetailVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/trade")
public class CourierTradeOrderController {
    @Resource
    private CourierTradeOrderService courierTradeOrderService;
    /**
     * 运单查询
     */
    @GetMapping("/queryPendingOrders")
    public Result queryPendingOrders(Long status, Long courierId) {
        return courierTradeOrderService.queryCourierTradeOrderByCourierIdAndStatus(status,courierId);
    }
    /**
     * 待取货查询
     */
    @GetMapping("/queryTobePickedUpTradeOrders")
    public Result queryTobePickedUpTradeOrders(Long status, Long courierId) {
        return courierTradeOrderService.queryCourierTradeOrderByCourierIdAndStatus(status,courierId);
    }
    /**
     * 待送达查询
     */
    @GetMapping("/toBedeliveredList")
    public Result toBedeLiveRedList(Long status, Long courierId) {
        return courierTradeOrderService.queryCourierTradeOrderByCourierIdAndStatus(status,courierId);
    }
    /**
     * 已取消查询
     */
    @GetMapping("/queryCanceldTradeOrderList")
    public Result queryCanceldTradeOrderList(Long status, Long courierId) {
        return courierTradeOrderService.queryCourierTradeOrderByCourierIdAndStatus(status,courierId);
    }
    /**
     * 根据订单号查询运单信息
     */
    @GetMapping("/queryTradeOrderByTradeNo")
    public Result queryTradeOrderByTradeNo(Long tradeNo) {
        return courierTradeOrderService.queryTradeOrderByTradeNo(tradeNo);
    }
    /**
     * 查询运单菜品详情
     */
    @GetMapping("/confirmPickUpList")
    public Result<List<OrderDetailVO>> confirmPickUpList(Long  tradeNo) {
        List<OrderDetailVO> orderDetailVOList =courierTradeOrderService.confirmPickUpList(tradeNo);
        return Result.success(orderDetailVOList);
    }
    /**
     * 确认取货,完成配送
     */
    @PutMapping("/confirmPickUp")
    @ApiOperation("确认取货/完成配送")
    public Result confirmPickUp(@RequestBody PickUpDTO dto){
        return courierTradeOrderService.confirmPickUp(dto);
    }

    /**
     * 我的订单
     * */
    @GetMapping("/queryWaybillsByDate")
    public Result queryWaybillsByDate(CourierTradeQueryDto courierTradeQueryDto){
        return courierTradeOrderService.queryWaybillsByDate(courierTradeQueryDto);

    }
}
